package model

import (
	"gorm.io/gorm"
	"smart-health-platforms/config"
	"time"
)

type GrouponRecord struct {
	Id           uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	UserId       uint           `gorm:"column:user_id;type:bigint UNSIGNED;comment:用户id;not null;default:0;" json:"user_id"`                          // 用户id
	ProductId    uint           `gorm:"column:product_id;type:bigint UNSIGNED;comment:拼团商品id;not null;default:0;" json:"product_id"`                  // 拼团商品id
	GroupSn      string         `gorm:"column:group_sn;type:varchar(255);comment:拼团订单号;not null;" json:"group_sn"`                                    // 拼团订单号
	ProductNum   uint           `gorm:"column:product_num;type:int UNSIGNED;comment:购买商品数量;not null;default:0;" json:"product_num"`                   // 购买商品数量
	ProductPrice float64        `gorm:"column:product_price;type:decimal(10, 2) UNSIGNED;comment:拼团商品单价;not null;default:0.00;" json:"product_price"` // 拼团商品单价
	UserOrderSn  string         `gorm:"column:user_order_sn;type:varchar(255);comment:个人订单号;not null;" json:"user_order_sn"`                          // 个人订单号
	GroupPrice   float64        `gorm:"column:group_price;type:decimal(10, 2) UNSIGNED;comment:拼团总价;not null;default:0.00;" json:"group_price"`       // 拼团总价
	GroupNum     uint           `gorm:"column:group_num;type:int UNSIGNED;comment:拼团总人数;not null;default:0;" json:"group_num"`                        // 拼团总人数
	Status       uint           `gorm:"column:status;type:int UNSIGNED;comment:拼团状态：0：拼团中1：拼团成功 2：拼团失败;not null;default:0;" json:"status"`            // 拼团状态：0：拼团中1：拼团成功 2：拼团失败
	GroupAdd     time.Time      `gorm:"column:group_add;type:datetime(3);comment:拼团开始时间;not null;" json:"group_add"`                                  // 拼团开始时间
	GroupEnd     time.Time      `gorm:"column:group_end;type:datetime(3);comment:拼团结束时间;not null;" json:"group_end"`                                  // 拼团结束时间
	UserType     uint           `gorm:"column:user_type;type:int UNSIGNED;comment:用户类型：1：团长 2：团员;not null;default:0;" json:"user_type"`               // 用户类型：1：团长 2：团员
	InviteCode   string         `gorm:"column:invite_code;type:varchar(255);comment:邀请码;not null;" json:"invite_code"`                                // 邀请码
	GroupType    uint           `gorm:"column:group_type;type:int UNSIGNED;comment:拼团类型：0：普通拼团 1：超级拼团;not null;default:0;" json:"group_type"`         // 拼团类型：0：普通拼团 1：超级拼团
	CreatedAt    time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt    time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt    gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

func (gr *GrouponRecord) TableName() string {
	return "groupon_record"
}

// 创建拼团
func (gr *GrouponRecord) CreateGroup() error {
	return config.DB.Create(&gr).Error
}
